package Shuffle;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Cards {

    public static final String[] suits={"♥","♠","♦","♣"};


    //4个花色,每个花色13张牌
    public List<Card> buyCard() {
        List<Card> cardList=new ArrayList<Card>();
        for(int i=0;i<4;i++) {
            for(int j=1;j<=13;j++) {
                int rank=j;
                String suit=suits[i];
                Card card=new Card(rank,suit);//生成一张牌
                cardList.add(card);//生成一张就放入cardList
            }
        }
        return cardList;
    }

    //随机打乱
    public void shuffle(List<Card> cardList) {
        //交换下标即可,用i从后往前遍历,每次生成一个随机数作为下标,两者交换,一直到i为0
        Random random=new Random();
        for(int i=cardList.size()-1;i>0;i--) {
            int randIndex=random.nextInt(i);
            swap(cardList,i,randIndex);
        }
    }

    private void swap(List<Card> cardList,int i,int j) {
        Card tmp=cardList.get(i);
        cardList.set(i,cardList.get(j));
        cardList.set(j,tmp);
    }

    //揭牌
    public void drawCard(List<Card> cardList) {
        //怎么放?每人各有一个List,抓的牌就放进里面
        List<Card> list1=new ArrayList<>();
        List<Card> list2=new ArrayList<>();
        List<Card> list3=new ArrayList<>();

        //将每人抓的牌的list集合起来,方便判断每张牌该放到哪个人的list中
        List<List<Card>> lists=new ArrayList<>();
        lists.add(list1);
        lists.add(list2);
        lists.add(list3);

        for(int i=0;i<5;i++) {  //轮次
            for(int j=0;j<3;j++) {  //人数
                //怎么揭牌?每次揭的牌是剩余牌cardList的最上面那张(第一个元素)
                lists.get(j).add(cardList.remove(0));
            }
        }
        System.out.println("第一人的牌:"+list1);
        System.out.println("第二人的牌:"+list2);
        System.out.println("第三人的牌:"+list3);
    }
}
